
/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

云物理服务器
云物理服务器相关接口

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/

#import <Foundation/Foundation.h>

#import <JDCloudOCSDKCps/CpsExecutor.h>


/// 查询子网详情
@implementation  CpsDescribeSubnetExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/subnets/{subnetId}";
    return self;
}
@end

/// 修改监听器
@implementation  CpsModifyListenerExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/listeners/{listenerId}:modifylistenerAttributes";
    return self;
}
@end

/// 绑定弹性公网IP
@implementation  CpsAssociateElasticIpLBExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/slbs/{loadBalancerId}:associateElasticIp";
    return self;
}
@end

/// 查询监听器详情
@implementation  CpsQueryListenerExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/listeners/{listenerId}";
    return self;
}
@end

/// 删除私有网络
   /// 
@implementation  CpsDeleteVpcExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/vpcs/{vpcId}";
    return self;
}
@end

/// 查询单个云物理服务器硬件监控信息
@implementation  CpsDescribeInstanceStatusExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/instances/{instanceId}:describeInstanceStatus";
    return self;
}
@end

/// 添加后端服务器
@implementation  CpsAddServersExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/serverGroups/{serverGroupId}/servers";
    return self;
}
@end

/// 重装云物理服务器，只能重装stopped状态的服务器&lt;br/&gt;
   /// - 可调用接口（describeOS）获取云物理服务器支持的操作系统列表
   ///  [MFA enabled]
@implementation  CpsReinstallInstanceExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:reinstallInstance";
    return self;
}
@end

/// 删除虚拟服务器组
@implementation  CpsDeleteServerGroupExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/serverGroups/{serverGroupId}";
    return self;
}
@end

/// 查询某种实例类型的云物理服务器支持的RAID类型，可查询系统盘RAID类型和数据盘RAID类型
@implementation  CpsDescribeDeviceRaidsExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/raids";
    return self;
}
@end

/// 解绑弹性公网IP
@implementation  CpsDisassociateElasticIpLBExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/slbs/{loadBalancerId}:disassociateElasticIp";
    return self;
}
@end

/// 修改私有网络
   /// 
@implementation  CpsModifyVpcExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/vpcs/{vpcId}";
    return self;
}
@end

/// 查询负载均衡实例详情
@implementation  CpsQueryLoadBalancerExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/slbs/{loadBalancerId}";
    return self;
}
@end

/// 查询后端服务器列表
@implementation  CpsQueryServersExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/serverGroups/{serverGroupId}/servers";
    return self;
}
@end

/// 查询云物理服务器名称
@implementation  CpsDescribeInstanceNameExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/instances/{instanceId}:describeInstanceName";
    return self;
}
@end

/// 修改子网
@implementation  CpsModifySubnetExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/subnets/{subnetId}";
    return self;
}
@end

/// 查询私有网络列表
@implementation  CpsDescribeVpcsExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/vpcs";
    return self;
}
@end

/// 查询密钥对详情
@implementation  CpsQueryKeypairExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/keypairs/{keypairId}";
    return self;
}
@end

/// 查询单个云物理服务器已安装的RAID信息，包括系统盘RAID信息和数据盘RAID信息
@implementation  CpsDescribeInstanceRaidExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/instances/{instanceId}:describeInstanceRaid";
    return self;
}
@end

/// 查询云物理服务器地域列表
@implementation  CpsDescribeRegionesExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/regions";
    return self;
}
@end

/// 查询负载均衡实例列表
@implementation  CpsQueryLoadBalancersExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/slbs";
    return self;
}
@end

/// 修改虚拟服务器组
@implementation  CpsModifyServerGroupExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/serverGroups/{serverGroupId}";
    return self;
}
@end

/// 修改云物理服务器部分信息，包括名称、描述
@implementation  CpsModifyInstanceExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/instances/{instanceId}:modifyInstance";
    return self;
}
@end

/// 查询密钥对列表
@implementation  CpsQueryKeypairsExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/keypairs";
    return self;
}
@end

/// 查询云物理服务器实例类型
@implementation  CpsDescribeDeviceTypesExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/deviceTypes";
    return self;
}
@end

/// 解绑弹性公网IP
   /// 
@implementation  CpsDisassociateElasticIpExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:disassociateElasticIp";
    return self;
}
@end

/// 查询弹性公网IP详情
@implementation  CpsDescribeElasticIpExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/elasticIps/{elasticIpId}";
    return self;
}
@end

/// 查询路由表列表
@implementation  CpsQueryRouteTablesExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/routeTables";
    return self;
}
@end

/// 修改负载均衡实例
@implementation  CpsModifyLoadBalancerExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/slbs/{loadBalancerId}:modifyLoadBalancerAttributes";
    return self;
}
@end

/// 开启负载均衡实例
@implementation  CpsStartLoadBalancerExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/slbs/{loadBalancerId}:startLoadBalancer";
    return self;
}
@end

/// 关闭负载均衡实例
@implementation  CpsStopLoadBalancerExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/slbs/{loadBalancerId}:stopLoadBalancer";
    return self;
}
@end

/// 查询单台云物理服务器详细信息
@implementation  CpsDescribeInstanceExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/instances/{instanceId}";
    return self;
}
@end

/// 升级云物理服务器外网带宽，只能操作running或者stopped状态的服务器&lt;br/&gt;
   /// - 不支持未启用外网的服务器升级带宽
   /// - 外网带宽不支持降级
   /// 
@implementation  CpsModifyBandwidthExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:modifyBandwidth";
    return self;
}
@end

/// 查询虚拟服务器组列表
@implementation  CpsQueryServerGroupsExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/serverGroups";
    return self;
}
@end

/// 查询云物理服务器监控信息
@implementation  CpsDescribeInstanceMonitorInfoExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/instances/{instanceId}/monitor";
    return self;
}
@end

/// 创建一台或多台指定配置的云物理服务器&lt;br/&gt;
   /// - 地域与可用区&lt;br/&gt;
   ///   - 调用接口（describeRegiones）获取云物理服务器支持的地域与可用区&lt;br/&gt;
   /// - 实例类型&lt;br/&gt;
   ///   - 调用接口（describeDeviceTypes）获取物理实例类型列表&lt;br/&gt;
   ///   - 不能使用已下线、或已售馨的实例类型&lt;br/&gt;
   /// - 操作系统&lt;br/&gt;
   ///   - 可调用接口（describeOS）获取云物理服务器支持的操作系统列表&lt;br/&gt;
   /// - 存储&lt;br/&gt;
   ///   - 数据盘多种RAID可选，可调用接口（describeDeviceRaids）获取服务器支持的RAID列表&lt;br/&gt;
   /// - 网络&lt;br/&gt;
   ///   - 网络类型目前支持basic、vpc&lt;br/&gt;
   ///   - 线路目前只支持bgp&lt;br/&gt;
   ///   - 支持不启用外网，如果启用外网，带宽范围[1,200] 单位Mbps&lt;br/&gt;
   /// - 其他&lt;br/&gt;
   ///   - 购买时长，可按年或月购买：月取值范围[1,9], 年取值范围[1,3]&lt;br/&gt;
   ///   - 密码设置参考公共参数规范&lt;br/&gt;
   /// 
@implementation  CpsCreateInstancesExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances";
    return self;
}
@end

/// 重置云物理服务器密码
   /// 
@implementation  CpsResetPasswordExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:resetPassword";
    return self;
}
@end

/// 绑定弹性公网IP
   /// 
@implementation  CpsAssociateElasticIpExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:associateElasticIp";
    return self;
}
@end

/// 对单台云物理服务器执行关机操作，只能停止running状态的服务器 [MFA enabled]
@implementation  CpsStopInstanceExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:stopInstance";
    return self;
}
@end

/// 查询私有网络详情
@implementation  CpsDescribeVpcExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/vpcs/{vpcId}";
    return self;
}
@end

/// 查询子网列表
@implementation  CpsDescribeSubnetsExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/subnets";
    return self;
}
@end

/// 查询路由表详情
@implementation  CpsQueryRouteTableExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/routeTables/{routeTableId}";
    return self;
}
@end

/// 删除监听器
@implementation  CpsDeleteListenerExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/listeners/{listenerId}";
    return self;
}
@end

/// 申请弹性公网IP
   /// 
@implementation  CpsApplyElasticIpsExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/elasticIps";
    return self;
}
@end

/// 创建密钥对
@implementation  CpsCreateKeypairsExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/keypairs";
    return self;
}
@end

/// 移除后端服务器
@implementation  CpsRemoveServerExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/serverGroups/{serverGroupId}/servers/{serverId}";
    return self;
}
@end

/// 导入密钥对
@implementation  CpsImportKeypairsExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/keypairs:import";
    return self;
}
@end

/// 创建虚拟服务器组
@implementation  CpsCreateServerGroupExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/serverGroups";
    return self;
}
@end

/// 开启监听器
@implementation  CpsStartListenerExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/listeners/{listenerId}:startListener";
    return self;
}
@end

/// 查询负载均衡地域列表
@implementation  CpsQueryCPSLBRegionsExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/cpslbRegions";
    return self;
}
@end

/// 查询虚拟服务器组
@implementation  CpsQueryServerGroupExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/serverGroups/{serverGroupId}";
    return self;
}
@end

/// 对单台云物理服务器执行开机操作，只能启动stopped状态的服务器
@implementation  CpsStartInstanceExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:startInstance";
    return self;
}
@end

/// 创建子网
@implementation  CpsCreateSubnetExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/subnets";
    return self;
}
@end

/// 重启单台云物理服务器，只能重启running状态的服务器 [MFA enabled]
@implementation  CpsRestartInstanceExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/instances/{instanceId}:restartInstance";
    return self;
}
@end

/// 查询弹性公网IP列表&lt;br/&gt;
   /// 支持分页查询，默认每页20条&lt;br/&gt;
   /// 
@implementation  CpsDescribeElasticIpsExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/elasticIps";
    return self;
}
@end

/// 查询云物理服务器支持的操作系统
@implementation  CpsDescribeOSExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/os";
    return self;
}
@end

/// 创建监听器
@implementation  CpsCreateListenerExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/listeners";
    return self;
}
@end

/// 修改弹性公网IP带宽
   /// 
@implementation  CpsModifyElasticIpBandwidthExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/elasticIps/{elasticIpId}:modifyElasticIpBandwidth";
    return self;
}
@end

/// 查询监听器
@implementation  CpsQueryListenersExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/listeners";
    return self;
}
@end

/// 修改后端服务器
@implementation  CpsModifyServerExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"POST";
    self.url = @"/serverGroups/{serverGroupId}/servers/{serverId}";
    return self;
}
@end

/// 批量查询云物理服务器详细信息&lt;br/&gt;
   /// 支持分页查询，默认每页20条&lt;br/&gt;
   /// 
@implementation  CpsDescribeInstancesExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/instances";
    return self;
}
@end

/// 创建负载均衡实例
@implementation  CpsCreateLoadBalancerExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/slbs";
    return self;
}
@end

/// 创建私有网络
@implementation  CpsCreateVpcExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/vpcs";
    return self;
}
@end

/// 删除密钥对
@implementation  CpsDeleteKeypairsExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/keypairs/{keypairId}";
    return self;
}
@end

/// 关闭监听器
@implementation  CpsStopListenerExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"PUT";
    self.url = @"/listeners/{listenerId}:stopListener";
    return self;
}
@end

/// 删除子网
@implementation  CpsDeleteSubnetExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"DELETE";
    self.url = @"/subnets/{subnetId}";
    return self;
}
@end

/// 查询基础网络子网
@implementation  CpsDescribeBasicSubnetExecutor

-(id) initWithJDCloudClient:(CpsClient*)JDCloudClient
{
    self.jdCloudClient = JDCloudClient;
    self.method = @"GET";
    self.url = @"/subnet";
    return self;
}
@end
